Online-Academy

Look, Read, Understand, Apply

Menu

Data Structure

Doubly Linked List

import java.util.*;
class dnode{
	int data;
	dnode left,right;
}

class doublelinkedlistDemo{
	public static void main(String[] args){
		dnode first=null, temp, dummy;
		dummy = new dnode();
		System.out.println("Creating Doubly Linked List!!!");
		int choice;
		int data; 
		Scanner sc = new Scanner(System.in);
		while(true){
			System.out.println("\n1.Insert\n2.Show\n3.Back Track\n4.Remove First Node\n5.Insert Before Firs node");
			choice = sc.nextInt();
			switch(choice){
				case 1: System.out.println("Enter Integer Data:");
						data = sc.nextInt();
						temp = new dnode();
						temp.data = data;
						temp.left = temp.right = null; 
						if(first == null){
							first = temp;
							dummy = temp;
						}else{
							dummy.right = temp;
							temp.left = dummy;
							dummy = temp;
						}
				break;
				case 2: System.out.println("Show contents of List: \n");
						for(temp=first;temp.right!=null;temp=temp.right){
							System.out.print(temp.data+"  ");
						}System.out.print(temp.data+"  ");
				break;
				case 3: System.out.println("Back Tracking: \n");
						for(temp=dummy;temp.left!=null;temp=temp.left){
							System.out.print(temp.data+"  ");
						}System.out.print(temp.data+"  ");
				break;
				case 4: System.out.println("Removing First Node of List");
						temp = first.right;
						first = temp;
						first.left = null; 
				break;
				case 5: System.out.println("Insert Before First Node");
						data = sc.nextInt();
						temp = new dnode();
						temp.data = data;
						temp.left = temp.right = null; 
						temp.right = first; 
						first.left = temp;
						first = temp; 
				break;
				default:System.exit(0);
				break;
			}
		}
	}
}
Output
Creating Doubly Linked List!!!

1.Insert
2.Show
3.Back Track
4.Remove First Node
5.Insert Before Firs node
1
Enter Integer Data:
33

1.Insert
2.Show
3.Back Track
4.Remove First Node
5.Insert Before Firs node
1
Enter Integer Data:
44

1.Insert
2.Show
3.Back Track
4.Remove First Node
5.Insert Before Firs node
1
Enter Integer Data:
5

1.Insert
2.Show
3.Back Track
4.Remove First Node
5.Insert Before Firs node
2
Show contents of List:

33  44  5
1.Insert
2.Show
3.Back Track
4.Remove First Node
5.Insert Before Firs node
3
Back Tracking:

5  44  33
1.Insert
2.Show
3.Back Track
4.Remove First Node
5.Insert Before Firs node
4
Removing First Node of List

1.Insert
2.Show
3.Back Track
4.Remove First Node
5.Insert Before Firs node
2
Show contents of List:

44  5
1.Insert
2.Show
3.Back Track
4.Remove First Node
5.Insert Before Firs node